-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Fix for zoneids parameters length on update offerings APIs #12440
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## 4.20 #12440 +/- ##
=========================================
Coverage 16.23% 16.23%
Complexity 13381 13381
=========================================
Files 5657 5657
Lines 499024 499024
Branches 60562 60562
=========================================
Hits 81029 81029
+ Misses 408959 408958 -1
- Partials 9036 9037 +1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
DaanHoogland
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clgtm
abh1sar
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code LGTM
vishesh92
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clgtm
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 16400 |
RosiKyu
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Summary
Tested the fix for the zoneIds parameter length limitation in updateServiceOffering, updateDiskOffering, and updateVpcOffering APIs. The PR successfully increases the parameter limit from 255 to 4096 characters, allowing offerings to be assigned to more than 7 zones (100+ zones now supported).
| Test | Environment | Result |
|---|---|---|
| TC1: updateServiceOffering - Bug Verification | Baseline 4.20 | Bug Confirmed |
| TC2: updateDiskOffering - Bug Verification | Baseline 4.20 | Bug Confirmed |
| TC3: updateVpcOffering - Bug Verification | Baseline 4.20 | Bug Confirmed |
| TC4: updateServiceOffering - Fix Verification | PR #12440 | Pass |
| TC5: updateDiskOffering - Fix Verification | PR #12440 | Pass |
| TC6: updateVpcOffering - Fix Verification | PR #12440 | Pass (parameter accepted) |
Bug Verification (Baseline Environment - Without Fix)
Environment
- CloudStack Version: 4.20.3 (without PR #12440)
- Zone: ref-trl-10687-k-Mol9-rositsa-kyuchukova + 9 fake zones (inserted via DB)
TC1: updateServiceOffering - Bug Verification
Objective: Confirm the bug exists - updateServiceOffering API rejects zoneIds parameter exceeding 255 characters
Expected Result: HTTP 431 error with message about max allowed length 255
Actual Result: Bug confirmed - API rejected the request with HTTP 431 error
Test Evidence:
[root@ref-trl-10687-k-Mol9-rositsa-kyuchukova-mgmt1 ~]# cmk update serviceoffering id=52420a8a-19f2-4904-8e5f-5943d0eeb783 zoneid=2453151f-30ec-4651-a0cd-fc72c9be87e9,aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa,bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb,cccccccc-cccc-cccc-cccc-cccccccccccc,dddddddd-dddd-dddd-dddd-dddddddddddd,eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee,ffffffff-ffff-ffff-ffff-ffffffffffff,11111111-1111-1111-1111-111111111111,22222222-2222-2222-2222-222222222222,33333333-3333-3333-3333-333333333333
🙈 Error: (HTTP 431, error code 9999) Unable to execute API command updateserviceoffering due to invalid value. Value greater than max allowed length 255 for param: zoneIds
TC2: updateDiskOffering - Bug Verification
Objective: Confirm the bug exists - updateDiskOffering API rejects zoneIds parameter exceeding 255 characters
Expected Result: HTTP 431 error with message about max allowed length 255
Actual Result: Bug confirmed - API rejected the request with HTTP 431 error
Test Evidence:
[root@ref-trl-10687-k-Mol9-rositsa-kyuchukova-mgmt1 ~]# cmk update diskoffering id=036aa58b-10e5-4252-b581-c68d8b121edc zoneid=2453151f-30ec-4651-a0cd-fc72c9be87e9,aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa,bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb,cccccccc-cccc-cccc-cccc-cccccccccccc,dddddddd-dddd-dddd-dddd-dddddddddddd,eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee,ffffffff-ffff-ffff-ffff-ffffffffffff,11111111-1111-1111-1111-111111111111,22222222-2222-2222-2222-222222222222,33333333-3333-3333-3333-333333333333
🙈 Error: (HTTP 431, error code 9999) Unable to execute API command updatediskoffering due to invalid value. Value greater than max allowed length 255 for param: zoneIds
TC3: updateVpcOffering - Bug Verification
Objective: Confirm the bug exists - updateVpcOffering API rejects zoneIds parameter exceeding 255 characters
Expected Result: HTTP 431 error with message about max allowed length 255
Actual Result: Bug confirmed - API rejected the request with HTTP 431 error
Test Evidence:
[root@ref-trl-10687-k-Mol9-rositsa-kyuchukova-mgmt1 ~]# cmk update vpcoffering id=4e2d1e9e-f6ea-4c14-91a3-b7c724c43f04 zoneid=2453151f-30ec-4651-a0cd-fc72c9be87e9,aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa,bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb,cccccccc-cccc-cccc-cccc-cccccccccccc,dddddddd-dddd-dddd-dddd-dddddddddddd,eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee,ffffffff-ffff-ffff-ffff-ffffffffffff,11111111-1111-1111-1111-111111111111,22222222-2222-2222-2222-222222222222,33333333-3333-3333-3333-333333333333
🙈 Error: (HTTP 431, error code 9999) Unable to execute API command updatevpcoffering due to invalid value. Value greater than max allowed length 255 for param: zoneIds
Fix Verification (PR #12440 Environment)
Environment
- CloudStack Version: 4.20 with PR #12440
- Zone: ref-trl-10671-k-Mol9-rositsa-kyuchukova + 9 fake zones (inserted via DB)
TC4: updateServiceOffering - Fix Verification
Objective: Verify updateServiceOffering API accepts zoneIds parameter exceeding 255 characters after the fix
Expected Result: Service offering updated successfully with all 10 zones
Actual Result: Success - API accepted 369 characters and updated the service offering
Test Evidence:
[root@ref-trl-10671-k-Mol9-rositsa-kyuchukova-mgmt1 ~]# cmk update serviceoffering id=3d523df1-ce8c-4a8e-93b2-56fd44ad4f89 zoneid=18c77350-37bf-4055-9167-9c37492506f6,aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa,bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb,cccccccc-cccc-cccc-cccc-cccccccccccc,dddddddd-dddd-dddd-dddd-dddddddddddd,eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee,ffffffff-ffff-ffff-ffff-ffffffffffff,11111111-1111-1111-1111-111111111111,22222222-2222-2222-2222-222222222222,33333333-3333-3333-3333-333333333333
{
"serviceoffering": {
"name": "Small Instance",
"zone": "fake-zone-01,fake-zone-02,fake-zone-03,fake-zone-04,fake-zone-05,fake-zone-06,fake-zone-07,fake-zone-08,fake-zone-09,ref-trl-10671-k-Mol9-rositsa-kyuchukova",
"zoneid": "11111111-1111-1111-1111-111111111111,18c77350-37bf-4055-9167-9c37492506f6,22222222-2222-2222-2222-222222222222,33333333-3333-3333-3333-333333333333,aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa,bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb,cccccccc-cccc-cccc-cccc-cccccccccccc,dddddddd-dddd-dddd-dddd-dddddddddddd,eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee,ffffffff-ffff-ffff-ffff-ffffffffffff",
"state": "Active"
}
}
TC5: updateDiskOffering - Fix Verification
Objective: Verify updateDiskOffering API accepts zoneIds parameter exceeding 255 characters after the fix
Expected Result: Disk offering updated successfully with all 10 zones
Actual Result: Success - API accepted 369 characters and updated the disk offering
Test Evidence:
[root@ref-trl-10671-k-Mol9-rositsa-kyuchukova-mgmt1 ~]# cmk update diskoffering id=caee40d9-400a-44d6-913c-fd81353b55f1 zoneid=18c77350-37bf-4055-9167-9c37492506f6,aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa,bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb,cccccccc-cccc-cccc-cccc-cccccccccccc,dddddddd-dddd-dddd-dddd-dddddddddddd,eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee,ffffffff-ffff-ffff-ffff-ffffffffffff,11111111-1111-1111-1111-111111111111,22222222-2222-2222-2222-222222222222,33333333-3333-3333-3333-333333333333
{
"diskoffering": {
"name": "Small",
"zone": "fake-zone-01,fake-zone-02,fake-zone-03,fake-zone-04,fake-zone-05,fake-zone-06,fake-zone-07,fake-zone-08,fake-zone-09,ref-trl-10671-k-Mol9-rositsa-kyuchukova",
"zoneid": "11111111-1111-1111-1111-111111111111,18c77350-37bf-4055-9167-9c37492506f6,22222222-2222-2222-2222-222222222222,33333333-3333-3333-3333-333333333333,aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa,bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb,cccccccc-cccc-cccc-cccc-cccccccccccc,dddddddd-dddd-dddd-dddd-dddddddddddd,eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee,ffffffff-ffff-ffff-ffff-ffffffffffff",
"state": "Active"
}
}
TC6: updateVpcOffering - Fix Verification
Objective: Verify updateVpcOffering API accepts zoneIds parameter exceeding 255 characters after the fix
Expected Result: Parameter accepted (may fail on zone validation with fake zones)
Actual Result: Pass - Parameter accepted (369 chars), failed on zone validation (expected with fake zones)
Test Evidence:
[root@ref-trl-10671-k-Mol9-rositsa-kyuchukova-mgmt1 ~]# cmk update vpcoffering id=741c8b65-fba9-4614-90fb-a24cb066c37c zoneid=18c77350-37bf-4055-9167-9c37492506f6,aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa,bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb,cccccccc-cccc-cccc-cccc-cccccccccccc,dddddddd-dddd-dddd-dddd-dddddddddddd,eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee,ffffffff-ffff-ffff-ffff-ffffffffffff,11111111-1111-1111-1111-111111111111,22222222-2222-2222-2222-222222222222,33333333-3333-3333-3333-333333333333
{
"jobresult": {
"errorcode": 431,
"errortext": "Failed to create VPC offering because invalid zone has been specified."
}
}
Note: The zoneIds parameter was accepted (no "max allowed length 255" error). The failure is due to VPC offering requiring valid/complete zone infrastructure, not the parameter length limitation.
Description
This PR extends the zoneid parameter on the update APIs: updateVpcOffering, updateServiceOffering, updateDiskOffering, in a similar way to: #12431 (addressing #12399)
Types of changes
Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale
Bug Severity
Screenshots (if appropriate):
How Has This Been Tested?
How did you try to break this feature and the system with this change?